package com.ruoyi.system.service.impl;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.system.service.IDeptService;
import com.ruoyi.system.service.IDeptidOlddeptidService;
import com.ruoyi.system.service.IRenwuService;
import com.ruoyi.system.service.IZhuanjiaService;
import com.ruoyi.system.tools.CreateXLS;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;


/**
 * @author yaolongjun
 * @date   2022年3月7日 下午4:09:10
 */
@Service
public class ExportService {

	@Autowired
	IRenwuService renwuService;
	@Autowired
	IDeptidOlddeptidService deptidOlddeptidService;
	@Autowired
	IZhuanjiaService zhuanjiaService;

	// 导出变动审核
	public void exportBiandongShenhe(String deptid,
									 int ppShenhezhuangtai,
									 String ppJigoumingcheng,
									 String ppZhuanjiaxingming,
									 String ppRenwuxiafashijian1,
									 String ppRenwuxiafashijian2,
									 String ppRenwuwanchengshijian1,
									 String ppRenwuwanchengshijian2,
									 String biandongleixing,
									 HttpServletResponse response,
									 HttpServletRequest request) {
		// 准备list
		List<Map<String, Object>> list = renwuService.findShenheListByDept(deptid, ppShenhezhuangtai,
				ppJigoumingcheng, ppZhuanjiaxingming, ppRenwuxiafashijian1, ppRenwuxiafashijian2,
				ppRenwuwanchengshijian1,ppRenwuwanchengshijian2, biandongleixing,1, Integer.MAX_VALUE);

		// 表头
		List<List<String>> mmResultList = new ArrayList<List<String>>();
		List<String> mmTitleList = new ArrayList<String>();

		mmTitleList.add("序号");
		mmTitleList.add("专家名称");
		mmTitleList.add("性别");
		mmTitleList.add("出生日期");
		mmTitleList.add("证件类型");
		mmTitleList.add("证件号码");
		mmTitleList.add("国籍");
		mmTitleList.add("教育程度");
		mmTitleList.add("工作单位");
		mmTitleList.add("所属行业");
		mmTitleList.add("手机号码");
		mmTitleList.add("电话号码");
		mmTitleList.add("电子邮件");
		mmTitleList.add("邮编");
		mmTitleList.add("地址");
		mmTitleList.add("入选年份");
		mmTitleList.add("专家状态");
		mmTitleList.add("去世时间");
		mmTitleList.add("状态变动时间");
		mmTitleList.add("联系人");
		mmTitleList.add("联系电话");
		mmTitleList.add("与专家关系");
		mmTitleList.add("联系人");
		mmTitleList.add("联系电话");
		mmTitleList.add("与专家关系");
		mmTitleList.add("联系人");
		mmTitleList.add("联系电话");
		mmTitleList.add("与专家关系");
		mmTitleList.add("银行名称");
		mmTitleList.add("银行账号");

		mmTitleList.add("变动类型");
		mmTitleList.add("变动日期");
		mmTitleList.add("说明");
		mmTitleList.add("提交时间");
		mmTitleList.add("审批单位");
		mmTitleList.add("审核状态");
		mmTitleList.add("审批时间");
		mmTitleList.add("是否通过");





		mmResultList.add(mmTitleList);

		try {
			// 循环
			for (int i = 0; i < list.size(); i++) {
				List<String> tempList = new ArrayList<String>();
				Map<String,Object> 单位信息Map = list.get(i);


				String mm审批单位 = 单位信息Map.get("shenqingdanwei") == null ? "" : 单位信息Map.get("shenqingdanwei").toString();
				String mm审核状态 = null;
				if(单位信息Map.get("isqidong").equals(1)&&单位信息Map.get("isjieshu").equals(1)&&单位信息Map.get("beizhu1").equals("1")){
					mm审核状态 = new String("审核通过");
				}else if (单位信息Map.get("isqidong").equals(1)&&单位信息Map.get("isjieshu").equals(0)){
					mm审核状态 = new String("审核中");
				} else if (单位信息Map.get("isqidong").equals(1)&&单位信息Map.get("isjieshu").equals(1)&&单位信息Map.get("beizhu1").equals("0")) {
					mm审核状态 = new String("审核未通过");
				}
				String mm是否通过 = 单位信息Map.get("shifoutongguo").equals(1)?"通过":"未通过";
				String mm变动类型 = 单位信息Map.get("biandongleixing_text") == null ? "" : 单位信息Map.get("biandongleixing_text").toString();
				String mm变动日期 = 单位信息Map.get("biandongriqi") == null ? "" : 单位信息Map.get("biandongriqi").toString();
				String mm说明 = 单位信息Map.get("shuoming") == null ? "" : 单位信息Map.get("shuoming").toString();
				String mm提交时间 = 单位信息Map.get("renwuxiafashijian") == null ? "" : 单位信息Map.get("renwuxiafashijian").toString();
				String mm审批时间 = 单位信息Map.get("renwuwanchengshijian") == null ? "" : 单位信息Map.get("renwuwanchengshijian").toString();
				String mm专家名称 = 单位信息Map.get("zhuanjiamingcheng") == null ? "" : 单位信息Map.get("zhuanjiamingcheng").toString();
				String mm性别 = 单位信息Map.get("xingbie_text") == null ? "" : 单位信息Map.get("xingbie_text").toString();
				String mm出生日期 = 单位信息Map.get("chushengriqi") == null ? "" : 单位信息Map.get("chushengriqi").toString();
				String mm证件类型 = 单位信息Map.get("zhengjianleixing_text") == null ? "" : 单位信息Map.get("zhengjianleixing_text").toString();
				String mm证件号码 = 单位信息Map.get("zhengjianhaoma") == null ? "" : 单位信息Map.get("zhengjianhaoma").toString();
				String mm国籍 = 单位信息Map.get("guoji_text") == null ? "" : 单位信息Map.get("guoji_text").toString();
				String mm教育程度 = 单位信息Map.get("jiaoyuchengdu") == null ? "" : 单位信息Map.get("jiaoyuchengdu").toString();
				String mm工作单位 = 单位信息Map.get("gongzuodanwei") == null ? "" : 单位信息Map.get("gongzuodanwei").toString();
				String mm所属行业 = 单位信息Map.get("suoshuhangye") == null ? "" : 单位信息Map.get("suoshuhangye").toString();
				String mm手机号码 = 单位信息Map.get("shoujihaoma") == null ? "" : 单位信息Map.get("shoujihaoma").toString();
				String mm电话号码 = 单位信息Map.get("dianhuahaoma") == null ? "" : 单位信息Map.get("dianhuahaoma").toString();
				String mm电子邮件 = 单位信息Map.get("dianziyoujian") == null ? "" : 单位信息Map.get("dianziyoujian").toString();
				String mm邮编 = 单位信息Map.get("youbian") == null ? "" : 单位信息Map.get("youbian").toString();
				String mm地址 = 单位信息Map.get("dizhi") == null ? "" : 单位信息Map.get("dizhi").toString();
				String mm入选年份 = 单位信息Map.get("ruxuannianfen") == null ? "" : 单位信息Map.get("ruxuannianfen").toString();
				String mm专家状态 = 单位信息Map.get("zhuanjiazhuangtai_text") == null ? "" : 单位信息Map.get("zhuanjiazhuangtai_text").toString();
				String mm去世时间 = 单位信息Map.get("qushishijian") == null ? "" : 单位信息Map.get("qushishijian").toString();
				String mm状态变动时间 = 单位信息Map.get("zhuangtaibiandongshijian") == null ? "" : 单位信息Map.get("zhuangtaibiandongshijian").toString();
				String mm联系人1 = 单位信息Map.get("lianxiren1") == null ? "" : 单位信息Map.get("lianxiren1").toString();
				String mm联系电话1 = 单位信息Map.get("lianxidianhua1") == null ? "" : 单位信息Map.get("lianxidianhua1").toString();
				String mm与专家关系1 = 单位信息Map.get("yuzhuanjiaguanxi1") == null ? "" : 单位信息Map.get("yuzhuanjiaguanxi1").toString();
				String mm联系人2 = 单位信息Map.get("lianxiren2") == null ? "" : 单位信息Map.get("lianxiren2").toString();
				String mm联系电话2 = 单位信息Map.get("lianxidianhua2") == null ? "" : 单位信息Map.get("lianxidianhua2").toString();
				String mm与专家关系2 = 单位信息Map.get("yuzhuanjiaguanxi2") == null ? "" : 单位信息Map.get("yuzhuanjiaguanxi2").toString();
				String mm联系人3 = 单位信息Map.get("lianxiren3") == null ? "" : 单位信息Map.get("lianxiren3").toString();
				String mm联系电话3 = 单位信息Map.get("lianxidianhua3") == null ? "" : 单位信息Map.get("lianxidianhua3").toString();
				String mm与专家关系3 = 单位信息Map.get("yuzhuanjiaguanxi3") == null ? "" : 单位信息Map.get("yuzhuanjiaguanxi3").toString();
				String mm银行名称 = 单位信息Map.get("yinhangmingcheng") == null ? "" : 单位信息Map.get("yinhangmingcheng").toString();
				String mm银行账号 = 单位信息Map.get("yinhangzhanghao") == null ? "" : 单位信息Map.get("yinhangzhanghao").toString();



				tempList.add((i+1)+"");              // 序号
				tempList.add(mm专家名称);
				tempList.add(mm性别);
				tempList.add(mm出生日期);
				tempList.add(mm证件类型);
				tempList.add(mm证件号码);
				tempList.add(mm国籍);
				tempList.add(mm教育程度);
				tempList.add(mm工作单位);
				tempList.add(mm所属行业);
				tempList.add(mm手机号码);
				tempList.add(mm电话号码);
				tempList.add(mm电子邮件);
				tempList.add(mm邮编);
				tempList.add(mm地址);
				tempList.add(mm入选年份);
				tempList.add(mm专家状态);
				tempList.add(mm去世时间);
				tempList.add(mm状态变动时间);
				tempList.add(mm联系人1);
				tempList.add(mm联系电话1);
				tempList.add(mm与专家关系1);
				tempList.add(mm联系人2);
				tempList.add(mm联系电话2);
				tempList.add(mm与专家关系2);
				tempList.add(mm联系人3);
				tempList.add(mm联系电话3);
				tempList.add(mm与专家关系3);
				tempList.add(mm银行名称);
				tempList.add(mm银行账号);
				tempList.add(mm变动类型);
				tempList.add(mm变动日期);
				tempList.add(mm说明);
				tempList.add(mm提交时间);
				tempList.add(mm审批单位);
				tempList.add(mm审核状态);
				tempList.add(mm审批时间);
				tempList.add(mm是否通过);




				mmResultList.add(tempList);
			}

			// 获得当前日期
			Date mmDate = new Date();
			DateFormat f = new SimpleDateFormat("yyyy-MM-dd");
			String mmDateString = f.format(mmDate);


			String userfilepath = RuoYiConfig.getUploadPath();

			// 取出文档存放的根目录，并去除文件最后的斜杠
			if (userfilepath.endsWith("/")) {
				userfilepath = userfilepath.substring(0, userfilepath.length() - 1);
			}

			String FileUrl = userfilepath + "/temp/biandongshenhe/"+ mmDateString+"/"+UUID.randomUUID().toString()+"/";
			CreateXLS.createExcel(mmResultList, FileUrl, "biandongshenhe.xls", "biandongshenhe",
					request, response);

		} catch (Exception e) {
			e.printStackTrace();

		}
		
	}


	// 导出人事关系转出审核
	public void exportRenshiguanxiZhuanchuShenhe(String deptid,
									 			 int ppShenhezhuangtai,
									 			 String ppJigoumingcheng,
									 			 String ppZhuanjiaxingming,
												 String ppRenwuxiafashijian1,
												 String ppRenwuxiafashijian2,
												 String ppRenwuwanchengshijian1,
												 String ppRenwuwanchengshijian2,
									 HttpServletResponse response,
									 HttpServletRequest request) {
		// 准备list
		List<Map<String, Object>> list = renwuService.findZhuanliShenheListByDept(deptid, ppShenhezhuangtai,
				ppJigoumingcheng, ppZhuanjiaxingming,  ppRenwuxiafashijian1, ppRenwuxiafashijian2,
				ppRenwuwanchengshijian1,ppRenwuwanchengshijian2, 1, Integer.MAX_VALUE);

		// 表头
		List<List<String>> mmResultList = new ArrayList<List<String>>();
		List<String> mmTitleList = new ArrayList<String>();


		mmTitleList.add("序号");
		mmTitleList.add("专家名称");
		mmTitleList.add("性别");
		mmTitleList.add("出生日期");
		mmTitleList.add("证件类型");
		mmTitleList.add("证件号码");
		mmTitleList.add("国籍");
		mmTitleList.add("教育程度");
		mmTitleList.add("工作单位");
		mmTitleList.add("所属行业");
		mmTitleList.add("手机号码");
		mmTitleList.add("电话号码");
		mmTitleList.add("电子邮件");
		mmTitleList.add("邮编");
		mmTitleList.add("地址");
		mmTitleList.add("入选年份");
		mmTitleList.add("专家状态");
		mmTitleList.add("去世时间");
		mmTitleList.add("状态变动时间");
		mmTitleList.add("联系人");
		mmTitleList.add("联系电话");
		mmTitleList.add("与专家关系");
		mmTitleList.add("联系人");
		mmTitleList.add("联系电话");
		mmTitleList.add("与专家关系");
		mmTitleList.add("联系人");
		mmTitleList.add("联系电话");
		mmTitleList.add("与专家关系");
		mmTitleList.add("银行名称");
		mmTitleList.add("银行账号");

		mmTitleList.add("变动类型");
		mmTitleList.add("变动日期");
		mmTitleList.add("说明");
		mmTitleList.add("提交时间");
		mmTitleList.add("审批单位");
		mmTitleList.add("转自单位");
		mmTitleList.add("转至单位");
		mmTitleList.add("审核状态");
		mmTitleList.add("审批时间");
		mmTitleList.add("是否通过");


		mmResultList.add(mmTitleList);

		try {
			// 循环
			for (int i = 0; i < list.size(); i++) {
				List<String> tempList = new ArrayList<String>();
				Map<String,Object> 单位信息Map = list.get(i);


				String mm审批单位 = 单位信息Map.get("shenqingdanwei") == null ? "" : 单位信息Map.get("shenqingdanwei").toString();
				String mm审核状态 = null;
				if(单位信息Map.get("isqidong").equals(1)&&单位信息Map.get("isjieshu").equals(1)&&单位信息Map.get("beizhu1").equals("1")){
					mm审核状态 = new String("审核通过");
				}else if (单位信息Map.get("isqidong").equals(1)&&单位信息Map.get("isjieshu").equals(0)){
					mm审核状态 = new String("审核中");
				} else if (单位信息Map.get("isqidong").equals(1)&&单位信息Map.get("isjieshu").equals(1)&&单位信息Map.get("beizhu1").equals("0")) {
					mm审核状态 = new String("审核未通过");
				}
				String mm是否通过 = 单位信息Map.get("shifoutongguo").equals(1)?"通过":"未通过";
				String mm变动类型 = 单位信息Map.get("biandongleixing_text") == null ? "" : 单位信息Map.get("biandongleixing_text").toString();
				String mm变动日期 = 单位信息Map.get("biandongriqi") == null ? "" : 单位信息Map.get("biandongriqi").toString();
				String mm转自单位 = 单位信息Map.get("zhuanzidanweimingcheng") == null ? "" : 单位信息Map.get("zhuanzidanweimingcheng").toString();
				String mm转至单位 = 单位信息Map.get("zhuanzhidanweimingcheng") == null ? "" : 单位信息Map.get("zhuanzhidanweimingcheng").toString();
				String mm说明 = 单位信息Map.get("shuoming") == null ? "" : 单位信息Map.get("shuoming").toString();
				String mm提交时间 = 单位信息Map.get("renwuxiafashijian") == null ? "" : 单位信息Map.get("renwuxiafashijian").toString();
				String mm审批时间 = 单位信息Map.get("renwuwanchengshijian") == null ? "" : 单位信息Map.get("renwuwanchengshijian").toString();
				String mm专家名称 = 单位信息Map.get("zhuanjiamingcheng") == null ? "" : 单位信息Map.get("zhuanjiamingcheng").toString();
				String mm性别 = 单位信息Map.get("xingbie_text") == null ? "" : 单位信息Map.get("xingbie_text").toString();
				String mm出生日期 = 单位信息Map.get("chushengriqi") == null ? "" : 单位信息Map.get("chushengriqi").toString();
				String mm证件类型 = 单位信息Map.get("zhengjianleixing_text") == null ? "" : 单位信息Map.get("zhengjianleixing_text").toString();
				String mm证件号码 = 单位信息Map.get("zhengjianhaoma") == null ? "" : 单位信息Map.get("zhengjianhaoma").toString();
				String mm国籍 = 单位信息Map.get("guoji_text") == null ? "" : 单位信息Map.get("guoji_text").toString();
				String mm教育程度 = 单位信息Map.get("jiaoyuchengdu") == null ? "" : 单位信息Map.get("jiaoyuchengdu").toString();
				String mm工作单位 = 单位信息Map.get("gongzuodanwei") == null ? "" : 单位信息Map.get("gongzuodanwei").toString();
				String mm所属行业 = 单位信息Map.get("suoshuhangye") == null ? "" : 单位信息Map.get("suoshuhangye").toString();
				String mm手机号码 = 单位信息Map.get("shoujihaoma") == null ? "" : 单位信息Map.get("shoujihaoma").toString();
				String mm电话号码 = 单位信息Map.get("dianhuahaoma") == null ? "" : 单位信息Map.get("dianhuahaoma").toString();
				String mm电子邮件 = 单位信息Map.get("dianziyoujian") == null ? "" : 单位信息Map.get("dianziyoujian").toString();
				String mm邮编 = 单位信息Map.get("youbian") == null ? "" : 单位信息Map.get("youbian").toString();
				String mm地址 = 单位信息Map.get("dizhi") == null ? "" : 单位信息Map.get("dizhi").toString();
				String mm入选年份 = 单位信息Map.get("ruxuannianfen") == null ? "" : 单位信息Map.get("ruxuannianfen").toString();
				String mm专家状态 = 单位信息Map.get("zhuanjiazhuangtai_text") == null ? "" : 单位信息Map.get("zhuanjiazhuangtai_text").toString();
				String mm去世时间 = 单位信息Map.get("qushishijian") == null ? "" : 单位信息Map.get("qushishijian").toString();
				String mm状态变动时间 = 单位信息Map.get("zhuangtaibiandongshijian") == null ? "" : 单位信息Map.get("zhuangtaibiandongshijian").toString();
				String mm联系人1 = 单位信息Map.get("lianxiren1") == null ? "" : 单位信息Map.get("lianxiren1").toString();
				String mm联系电话1 = 单位信息Map.get("lianxidianhua1") == null ? "" : 单位信息Map.get("lianxidianhua1").toString();
				String mm与专家关系1 = 单位信息Map.get("yuzhuanjiaguanxi1") == null ? "" : 单位信息Map.get("yuzhuanjiaguanxi1").toString();
				String mm联系人2 = 单位信息Map.get("lianxiren2") == null ? "" : 单位信息Map.get("lianxiren2").toString();
				String mm联系电话2 = 单位信息Map.get("lianxidianhua2") == null ? "" : 单位信息Map.get("lianxidianhua2").toString();
				String mm与专家关系2 = 单位信息Map.get("yuzhuanjiaguanxi2") == null ? "" : 单位信息Map.get("yuzhuanjiaguanxi2").toString();
				String mm联系人3 = 单位信息Map.get("lianxiren3") == null ? "" : 单位信息Map.get("lianxiren3").toString();
				String mm联系电话3 = 单位信息Map.get("lianxidianhua3") == null ? "" : 单位信息Map.get("lianxidianhua3").toString();
				String mm与专家关系3 = 单位信息Map.get("yuzhuanjiaguanxi3") == null ? "" : 单位信息Map.get("yuzhuanjiaguanxi3").toString();
				String mm银行名称 = 单位信息Map.get("yinhangmingcheng") == null ? "" : 单位信息Map.get("yinhangmingcheng").toString();
				String mm银行账号 = 单位信息Map.get("yinhangzhanghao") == null ? "" : 单位信息Map.get("yinhangzhanghao").toString();



				tempList.add((i+1)+"");              // 序号
				tempList.add(mm专家名称);
				tempList.add(mm性别);
				tempList.add(mm出生日期);
				tempList.add(mm证件类型);
				tempList.add(mm证件号码);
				tempList.add(mm国籍);
				tempList.add(mm教育程度);
				tempList.add(mm工作单位);
				tempList.add(mm所属行业);
				tempList.add(mm手机号码);
				tempList.add(mm电话号码);
				tempList.add(mm电子邮件);
				tempList.add(mm邮编);
				tempList.add(mm地址);
				tempList.add(mm入选年份);
				tempList.add(mm专家状态);
				tempList.add(mm去世时间);
				tempList.add(mm状态变动时间);
				tempList.add(mm联系人1);
				tempList.add(mm联系电话1);
				tempList.add(mm与专家关系1);
				tempList.add(mm联系人2);
				tempList.add(mm联系电话2);
				tempList.add(mm与专家关系2);
				tempList.add(mm联系人3);
				tempList.add(mm联系电话3);
				tempList.add(mm与专家关系3);
				tempList.add(mm银行名称);
				tempList.add(mm银行账号);
				tempList.add(mm变动类型);
				tempList.add(mm变动日期);
				tempList.add(mm说明);
				tempList.add(mm提交时间);
				tempList.add(mm审批单位);
				tempList.add(mm转自单位);
				tempList.add(mm转至单位);
				tempList.add(mm审核状态);
				tempList.add(mm审批时间);
				tempList.add(mm是否通过);






				mmResultList.add(tempList);
			}

			// 获得当前日期
			Date mmDate = new Date();
			DateFormat f = new SimpleDateFormat("yyyy-MM-dd");
			String mmDateString = f.format(mmDate);


			String userfilepath = RuoYiConfig.getUploadPath();

			// 取出文档存放的根目录，并去除文件最后的斜杠
			if (userfilepath.endsWith("/")) {
				userfilepath = userfilepath.substring(0, userfilepath.length() - 1);
			}

			String FileUrl = userfilepath + "/temp/renshiguanxizhuanchushenhe/"+ mmDateString+"/"+UUID.randomUUID().toString()+"/";
			CreateXLS.createExcel(mmResultList, FileUrl, "renshiguanxizhuanchushenhe.xls", "renshiguanxizhuanchushenhe",
					request, response);

		} catch (Exception e) {
			e.printStackTrace();

		}

	}


	// 专家管理-查询统计导出
	public void exportZhuanjiaguanliChaxuntongji(String deptid,
												 String zhuanjia,
												 String danwei,
												 String danweileixing,
												 String cengji,
												 String gongzuodanwei,
												 String guoji,
												 String zhengjianleixing,
												 String zhengjianhaoma,
												 String ruxuannianfen,
												 String zhuanjiazhuangtai,
												 String zhuanjiazhuangtaibiandongshijian,
												 HttpServletResponse response, HttpServletRequest request) {
		//获取当前用户
		Subject subject = ShiroUtils.getSubject();
		//将新单位ID转换为旧单位ID
		String olddeptid = deptidOlddeptidService.DeptIdToOldDeptId(deptid);

		List<Map<String, Object>> list = new ArrayList<>();
		//专家中心超管、专家中心普通管理员、单位超管查本单位和所有下属单位
		if (subject.hasRole("zhongxin_commonadmin")||subject.hasRole("zhongxin_superadmin")||subject.hasRole("dept_superadmin"))
		{
			list = zhuanjiaService.chaxuntongjilist(olddeptid, zhuanjia, danwei, danweileixing, cengji,gongzuodanwei, guoji,
					zhengjianleixing, zhengjianhaoma, ruxuannianfen, zhuanjiazhuangtai, zhuanjiazhuangtaibiandongshijian, 1, Integer.MAX_VALUE);
		}
		//单位普通管理员查本单位
		if (subject.hasRole("dept_commonadmin"))
		{
			list = zhuanjiaService.chaxuntongjilistCommon(olddeptid, zhuanjia, danwei, danweileixing, cengji,gongzuodanwei, guoji,
					zhengjianleixing, zhengjianhaoma, ruxuannianfen, zhuanjiazhuangtai, zhuanjiazhuangtaibiandongshijian, 1, Integer.MAX_VALUE);
		}
		// 表头
		List<List<String>> mmResultList = new ArrayList<List<String>>();
		List<String> mmTitleList = new ArrayList<String>();

		mmTitleList.add("序号");
		mmTitleList.add("专家名称");
		mmTitleList.add("性别");
		mmTitleList.add("出生日期");
		mmTitleList.add("证件类型");
		mmTitleList.add("证件号码");
		mmTitleList.add("国籍");
		mmTitleList.add("教育程度");
		mmTitleList.add("工作单位");
		mmTitleList.add("所属行业");
		mmTitleList.add("手机号码");
		mmTitleList.add("电话号码");
		mmTitleList.add("电子邮件");
		mmTitleList.add("邮编");
		mmTitleList.add("地址");
		mmTitleList.add("入选年份");
		mmTitleList.add("专家状态");
		mmTitleList.add("去世时间");
		mmTitleList.add("状态变动时间");
		mmTitleList.add("联系人");
		mmTitleList.add("联系电话");
		mmTitleList.add("与专家关系");
		mmTitleList.add("联系人");
		mmTitleList.add("联系电话");
		mmTitleList.add("与专家关系");
		mmTitleList.add("联系人");
		mmTitleList.add("联系电话");
		mmTitleList.add("与专家关系");
		mmTitleList.add("银行名称");
		mmTitleList.add("银行账号");


		mmResultList.add(mmTitleList);

		try {
			// 循环
			for (int i = 0; i < list.size(); i++) {
				List<String> tempList = new ArrayList<String>();
				Map<String,Object> 单位信息Map = list.get(i);

				String mm专家名称 = 单位信息Map.get("xingming") == null ? "" : 单位信息Map.get("xingming").toString();
				String mm性别 = 单位信息Map.get("xingbie_text") == null ? "" : 单位信息Map.get("xingbie_text").toString();
				String mm出生日期 = 单位信息Map.get("chushengriqi") == null ? "" : 单位信息Map.get("chushengriqi").toString();
				String mm证件类型 = 单位信息Map.get("zhengjianleixing_text") == null ? "" : 单位信息Map.get("zhengjianleixing_text").toString();
				String mm证件号码 = 单位信息Map.get("zhengjianhaoma") == null ? "" : 单位信息Map.get("zhengjianhaoma").toString();
				String mm国籍 = 单位信息Map.get("guoji_text") == null ? "" : 单位信息Map.get("guoji_text").toString();
				String mm教育程度 = 单位信息Map.get("jiaoyuchengdu") == null ? "" : 单位信息Map.get("jiaoyuchengdu").toString();
				String mm工作单位 = 单位信息Map.get("gongzuodanwei") == null ? "" : 单位信息Map.get("gongzuodanwei").toString();
				String mm所属行业 = 单位信息Map.get("suoshuhangye") == null ? "" : 单位信息Map.get("suoshuhangye").toString();
				String mm手机号码 = 单位信息Map.get("shoujihaoma") == null ? "" : 单位信息Map.get("shoujihaoma").toString();
				String mm电话号码 = 单位信息Map.get("dianhuahaoma") == null ? "" : 单位信息Map.get("dianhuahaoma").toString();
				String mm电子邮件 = 单位信息Map.get("dianziyoujian") == null ? "" : 单位信息Map.get("dianziyoujian").toString();
				String mm邮编 = 单位信息Map.get("youbian") == null ? "" : 单位信息Map.get("youbian").toString();
				String mm地址 = 单位信息Map.get("dizhi") == null ? "" : 单位信息Map.get("dizhi").toString();
				String mm入选年份 = 单位信息Map.get("ruxuannianfen") == null ? "" : 单位信息Map.get("ruxuannianfen").toString();
				String mm专家状态 = 单位信息Map.get("zhuanjiazhuangtai_text") == null ? "" : 单位信息Map.get("zhuanjiazhuangtai_text").toString();
				String mm去世时间 = 单位信息Map.get("qushishijian") == null ? "" : 单位信息Map.get("qushishijian").toString();
				String mm状态变动时间 = 单位信息Map.get("zhuangtaibiandongshijian") == null ? "" : 单位信息Map.get("zhuangtaibiandongshijian").toString();
				String mm联系人1 = 单位信息Map.get("lianxiren1") == null ? "" : 单位信息Map.get("lianxiren1").toString();
				String mm联系电话1 = 单位信息Map.get("lianxidianhua1") == null ? "" : 单位信息Map.get("lianxidianhua1").toString();
				String mm与专家关系1 = 单位信息Map.get("yuzhuanjiaguanxi1") == null ? "" : 单位信息Map.get("yuzhuanjiaguanxi1").toString();
				String mm联系人2 = 单位信息Map.get("lianxiren2") == null ? "" : 单位信息Map.get("lianxiren2").toString();
				String mm联系电话2 = 单位信息Map.get("lianxidianhua2") == null ? "" : 单位信息Map.get("lianxidianhua2").toString();
				String mm与专家关系2 = 单位信息Map.get("yuzhuanjiaguanxi2") == null ? "" : 单位信息Map.get("yuzhuanjiaguanxi2").toString();
				String mm联系人3 = 单位信息Map.get("lianxiren3") == null ? "" : 单位信息Map.get("lianxiren3").toString();
				String mm联系电话3 = 单位信息Map.get("lianxidianhua3") == null ? "" : 单位信息Map.get("lianxidianhua3").toString();
				String mm与专家关系3 = 单位信息Map.get("yuzhuanjiaguanxi3") == null ? "" : 单位信息Map.get("yuzhuanjiaguanxi3").toString();
				String mm银行名称 = 单位信息Map.get("yinhangmingcheng") == null ? "" : 单位信息Map.get("yinhangmingcheng").toString();
				String mm银行账号 = 单位信息Map.get("yinhangzhanghao") == null ? "" : 单位信息Map.get("yinhangzhanghao").toString();



				tempList.add((i+1)+"");              // 序号
				tempList.add(mm专家名称);
				tempList.add(mm性别);
				tempList.add(mm出生日期);
				tempList.add(mm证件类型);
				tempList.add(mm证件号码);
				tempList.add(mm国籍);
				tempList.add(mm教育程度);
				tempList.add(mm工作单位);
				tempList.add(mm所属行业);
				tempList.add(mm手机号码);
				tempList.add(mm电话号码);
				tempList.add(mm电子邮件);
				tempList.add(mm邮编);
				tempList.add(mm地址);
				tempList.add(mm入选年份);
				tempList.add(mm专家状态);
				tempList.add(mm去世时间);
				tempList.add(mm状态变动时间);
				tempList.add(mm联系人1);
				tempList.add(mm联系电话1);
				tempList.add(mm与专家关系1);
				tempList.add(mm联系人2);
				tempList.add(mm联系电话2);
				tempList.add(mm与专家关系2);
				tempList.add(mm联系人3);
				tempList.add(mm联系电话3);
				tempList.add(mm与专家关系3);
				tempList.add(mm银行名称);
				tempList.add(mm银行账号);

				mmResultList.add(tempList);
			}

			// 获得当前日期
			Date mmDate = new Date();
			DateFormat f = new SimpleDateFormat("yyyy-MM-dd");
			String mmDateString = f.format(mmDate);


			String userfilepath = RuoYiConfig.getUploadPath();

			// 取出文档存放的根目录，并去除文件最后的斜杠
			if (userfilepath.endsWith("/")) {
				userfilepath = userfilepath.substring(0, userfilepath.length() - 1);
			}

			String FileUrl = userfilepath + "/temp/专家管理/查询统计/"+ mmDateString+"/"+UUID.randomUUID().toString()+"/";
			CreateXLS.createExcel(mmResultList, FileUrl, "Zhuanjia.xls", "查询统计",
					request, response);

		} catch (Exception e) {
			e.printStackTrace();

		}

	}
}
